package easy

func CheckPossibility(nums []int) bool {
	n := len(nums)
	cnt := 0
	for i := 0; i < n-1; i++ {
		x := nums[i]
		y := nums[i+1]
		if x > y {
			cnt++
			if cnt > 1 {
				return false
			}
			if i > 0 && y < nums[i-1] {
				nums[i+1] = x
			}
		}
	}
	return true
}

func CheckPossibility1(nums []int) bool {
	n := len(nums)
	cnt := 0
	for i := 0; i < n-1; i++ {
		if nums[i] > nums[i+1] {
			cnt++
			if i == 0 {
				nums[i] = nums[i+1]
			} else {
				if nums[i+1] >= nums[i-1] {
					nums[i] = nums[i-1]
				} else {
					nums[i+1] = nums[i]
				}
			}
		}
	}
	return cnt < 2
}
